CARIBOO : A Multi-Strategy Termination Proof Tool Based on Induction
نویسندگان
چکیده
CARIBOO is a termination proof tool for rule-based programming languages, where a program is a rewrite system and query evaluation consists in rewriting a ground expression [3]. It applies to languages such as ASF+SDF, Maude, Cafe-OBJ, or ELAN. By contrast with most of the existing tools, which prove in general termination of standard rewriting (rewriting without strategy) on the free term algebra, our proof tool, named CARIBOO (for Computing AbstRaction for Induction Based termination prOOfs), allows proving termination under specific reduction strategies, which becomes of special interest when the computations diverge for standard rewriting. It deals in particular with :
منابع مشابه
Defining and Reasoning About Recursive Functions: A Practical Tool for the Coq Proof Assistant
We present a practical tool for defining and proving properties of recursive functions in the Coq proof assistant. The tool Defining and Reasoning About Recursive Functions 115 A more general solution consists in defining functions by well-founded recursion. Two approaches prevail in the current state-of-the-art: the so-called accessibility predicate approach [21] (and its variant converging it...
متن کاملThe Termination Competition
Since 2004, a Termination Competition is organized every year. This competition boosted a lot the development of automatic termination tools, but also the design of new techniques for proving termination. We present the background, results, and conclusions of the three first editions, and discuss perspectives and challenges for the future. 1 Motivation and history In a landmark paper in 1970, M...
متن کاملAn Automatic Induction Proof for Program Termination Analysis
The termination problem is in general undecidable, however, termination can be proved for specific classes of programs. This work describes an automatic method that tests for termination of modulo-case functions by conducting a mathematical induction proof. The system takes a modulo-case function and builds an execution trace tree from its inverse. Based on the execution trace tree, a linear po...
متن کاملTermination of Priority Rewriting
Introducing priorities in rewriting increases the expressive power of rules and helps to limit computations. Priority rewriting is used in rule-based programming as well as in functional programming. Termination of priority rewriting is then important to guarantee that programs give a result. We describe an inductive proof method for termination of priority rewriting, relying on an explicit ind...
متن کاملAutomating recursive definitions and termination proofs in higher-order logic
The aim of this thesis is to provide an infrastructure for general recursive function definitions in a proof assistant based on higher-order logic (HOL) that has no native support for recursion or pattern matching. In the first part we develop a tool that automates recursive function definitions and provides appropriate proof rules for them. Compared to previous work, our package supports the d...
متن کامل